package xeroxware.framework.util;

import java.io.File;

import org.springframework.web.multipart.MultipartFile;

//import com.mortennobel.imagescaling.AdvancedResizeOp;
//import com.mortennobel.imagescaling.ResampleOp;

/**
 * <pre>
 * FileUtil
 * </pre>
 * 
 * @since 2013. 2. 21.
 * @author XEROXER
 */
public class FileUtil {

	/**
	 * MultipartRequest로 전송된 파일을 지정된 경로에 저장한다.
	 * 
	 * @param file
	 *            파일
	 * @param path
	 *            저장 경로
	 * @param fileName
	 *            파일명
	 * @throws Exception
	 */
	public static void transferFile(MultipartFile file, String path, String fileName)
			throws Exception {

		File transferPath = new File(path);

		if (!transferPath.exists()) {
			transferPath.mkdirs();
		}

		File transferFile = new File(path + File.separator + fileName);
		file.transferTo(transferFile);
	}

	/**
	 * ThumbNail Image 파일을 생성한다.
	 * 
	 * @param inputStream
	 *            원본 Image Stream
	 * @param destPath
	 *            Thumbnail Image 파일 경로
	 * @param fileName
	 *            Thumbnail Image 파일명
	 * @param imageFormat
	 *            Image Format
	 * @param destWidth
	 *            Thumbnail Image Width
	 * @param destHeight
	 *            Thumbnail Image Height
	 * @return 파일 생성 여부
	 * @throws Exception
	 */
//	public static void makeThumbnail(InputStream inputStream, String destPath, String fileName,
//			String imageFormat, int destWidth, int destHeight) throws Exception {
//
//		try {
//			ResampleOp resampleOp = new ResampleOp(destWidth, destHeight);
//
//			File path = new File(destPath);
//
//			resampleOp.setUnsharpenMask(AdvancedResizeOp.UnsharpenMask.Normal);
//
//			BufferedImage originalImage = ImageIO.read(inputStream);
//			BufferedImage rescaleImage = resampleOp.filter(originalImage, null);
//
//			if (!path.exists()) {
//				path.mkdirs();
//			}
//
//			File destFile = new File(destPath + File.separator + fileName);
//
//			ImageIO.write(rescaleImage, imageFormat, destFile);
//		} catch (Exception e) {
//			throw e;
//		} finally {
//			inputStream.close();
//			inputStream = null;
//		}
//	}

}
